package com.tza.web.t_net.client.sceens;

/*
 * SmartGWT (GWT for SmartClient) Copyright 2008 and beyond, Isomorphic
 * Software, Inc. SmartGWT is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation. SmartGWT is also available
 * under typical commercial license terms - see http://smartclient.com/license
 * This software is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

import com.google.gwt.i18n.client.NumberFormat;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.form.fields.SpinnerItem;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridFieldIfFunction;
import com.smartgwt.client.widgets.grid.ListGridRecord;

public class ItemListGrid extends ListGrid
{

   public ItemListGrid(DataSource supplyItemDS)
   {

      setDataSource(supplyItemDS);
      setUseAllDataSourceFields(true);

      ListGridField itemName = new ListGridField("itemName", "Name");
      itemName.setShowHover(true);
      ListGridField unitCost = new ListGridField("unitCost");

      unitCost.setCellFormatter(new CellFormatter()
      {
         public String format(Object value, ListGridRecord record, int rowNum, int colNum)
         {
            if (value == null) return null;
            try
            {
               NumberFormat nf = NumberFormat.getFormat("##0.00");
               return "$" + nf.format(((Number) value).floatValue());
            }
            catch (Exception e)
            {
               return value.toString();
            }
         }
      });

      SpinnerItem spinnerItem = new SpinnerItem();
      spinnerItem.setStep(0.01);
      unitCost.setEditorType(spinnerItem);

      ListGridField sku = new ListGridField("SKU");
      sku.setCanEdit(false);

      ListGridField description = new ListGridField("description");
      description.setShowHover(true);

      ListGridField category = new ListGridField("category");
      category.setCanEdit(false);

      ListGridField inStock = new ListGridField("inStock");
      inStock.setWidth(55);
      inStock.setAlign(Alignment.CENTER);

      ListGridField nextShipment = new ListGridField("nextShipent");
      nextShipment.setShowIfCondition(new ListGridFieldIfFunction()
      {
         public boolean execute(ListGrid grid, ListGridField field, int fieldNum)
         {
            return false;
         }
      });

      setFields(itemName, unitCost, sku, description, category, inStock);
      setCanEdit(true);
      setCanDragRecordsOut(true);
      setHoverWidth(200);
      setHoverHeight(20);
      setSelectionType(SelectionStyle.SINGLE);
   }
}
